package j_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/* 正则表达式信息爬取
需求: 请把下面文本中的电话，邮箱，座机号码，热线都爬取出来。
来明两作学习Java，
电话:17399999888，18177070711或者联系邮箱: enron@itcast.cn
座机电话:010-35878951，010-12457256
邮箱:enron@itcast.cn
邮箱2:enron77@itcast.cn
热线电话:400-881-8080，400-618-4004，4000640040，40061

(1[3-9]\d{9})|
(0\d{2,7}-?[1-9]\d{4,19})|
(\w{2,}@\w{2,20}(\.\w{2,10}){1,2})|
(400-?\d{3,7}-?\d{3,7})
 */
public class RegexDemo05 {
    public static void main(String[] args) {
        method();
    }

    public static void method(){
        String str = "来明两作学习Java，\n" +
                "电话:17399999888，18177070711或者联系邮箱: enron@itcast.cn\n" +
                "座机电话:010-35878951，010-12457256\n" +
                "邮箱:enron@itcast.cn\n" +
                "邮箱2:enron77@itcast.cn\n" +
                "热线电话:400-881-8080，400-618-4004，4000640040，40061";
        //1.定义爬取的规则
        String regex = "(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|(\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2})|(400-?\\d{3,7}-?\\d{3,7})";
        //2.将这两个信息封装到一个正则表达对象中
        Pattern pattern = Pattern.compile(regex);
        //3.通过pattern对象去获取查询内容的匹配器对象
        Matcher matcher = pattern.matcher(str);
        //4.遍历对象获取对象中的内容
        while (matcher.find()){
            String string = matcher.group();//获取到找到的内容
            System.out.println(string);
        }
    }
}
